﻿package com.eitb.plantillas {
	import flash.net.*;
	import flash.geom.*;
	import flash.utils.*;
	import flash.events.*;
	import flash.display.*;
	import com.google.maps.*;
	import com.eitb.factorias.*;
	import com.eitb.plantillas.*;
	import com.eitb.cargadores.*;
	import com.google.maps.controls.*;
	import com.google.maps.overlays.*;
	public class ModeloMapaRedactor implements IControladorPlantilla, IControladorPlantillaMapa {
		private var vPlantilla:IVistaPlantilla;
		private var vPlantillaMapa:IVistaPlantillaMapa;
		private var coordenadas:LatLng;
		private var zoom:int;
		
		public function ModeloMapaRedactor():void {
		}
		public function initVistaPlantilla(vPlantilla:IVistaPlantilla):void {
			this.vPlantilla = vPlantilla;
		}		
		public function initVistaPlantillaMapa(vPlantillaMapa:IVistaPlantillaMapa):void {
			this.vPlantillaMapa = vPlantillaMapa;
		}		
		public function setCoordenadas(coordenadas:LatLng, zoom:int):void {
			this.coordenadas = coordenadas;
			this.zoom = zoom;
			this.vPlantillaMapa.addMapEventListener(MapEvent.MAP_READY, this.onMapReady);
		}

		private function onMapReady(event:Event):void {
			this.vPlantillaMapa.setCenter(this.coordenadas, this.zoom, MapType.NORMAL_MAP_TYPE);
			
			this.vPlantillaMapa.addControl(new PositionControl());
			this.vPlantillaMapa.addControl(new MapTypeControl());
			this.vPlantillaMapa.addControl(new ZoomControl());
			
			this.vPlantillaMapa.addMapEventListener(Event.ENTER_FRAME, this.textoCoordenadas);
		}		
		
		private function textoCoordenadas(e:Event):void {
			this.vPlantillaMapa.setText("Lat/Lng: "+e.currentTarget.getCenter()+"\rZoom: "+e.currentTarget.getZoom());
			this.vPlantillaMapa.setLocation(new Point(0, 320));
		}
	}
}